/**
 * für jede collection giebts ein provider (kann auch mal abweichen)
 * provider name is importent because its dynamic required
 * @param db 
 * @returns {___anonymous1431_1493}
 */

module.exports = function(db){
	var collection = db.collection('songs');//colection name ... intern im provider also hier können wir auch mit 2 oder mehr collections arbeiten aber vorerst brauchen wir des eher nich

	
	var addData = function(data2save, fn){
		collection.save(data2save, function(err, data) {
			fn(err, data)// ich weiß garnich ob er die gespeicherten daten wieder zurück giebt... würde sinn machen weil die ne _id verpasst bekommen
        });
	};
	var getData = function(fn){
        collection.find().toArray(function(err, results) {
        	//error abfangen
      	  fn(null, results);
        });
	};
	var getDataById = function(id, fn) {
		//des search object is mir noch nich ganz klar .... des war von nem beispiel aus dem netz
		collection.findOne({_id: collection.db.bson_serializer.ObjectID.createFromHexString(id)}, function(err, result) {
			if(err) fn(error)
			else fn(null, result)
		});
	};
	
	//hier geben wir unsere api zurück
	return {
		addData: addData,
		getData: getData,
		getDataById: getDataById,
	};
};

